EntitySuperComponent
以下是EntitySuperComponent​类的成员变量、类型定义和成员函数的详细说明,以表格形式列出:
类型定义
类型定义 描述
SuperComponentCreateOptions 一个类型别名,定义了创建组件时的选项结构,包含目标对象、位置和其他任意数据。
成员变量
成员变量 描述
owner: SuperEntity 保存组件所有者的引用,类型为SuperEntity​。
成员函数
成员函数 描述
constructor(typeId: string, owner: SuperEntity, options?: SuperComponentCreateOptions) 构造函数,初始化组件的类型标识符、所有者引用和创建选项,并绑定相关事件。
deconstructor(op?: string): void 析构函数,用于清理组件资源,解绑相关事件。
detach(): void 从所有者上移除自己这个组件。
getOwner(): SuperEntity 获取组件的所有者实例,类型为SuperEntity​。
onStart(): void 组件启动时调用的方法,继承自SuperComponent​类的同名方法。
onDieAfterEvent(event: EntityDieAfterEvent): void 实体死亡后的事件处理函数。
onHealthChangedAfterEvent(event: EntityHealthChangedAfterEvent): void 实体健康改变后的事件处理函数。
onHitBlockAfterEvent(event: EntityHitBlockAfterEvent): void 实体击中方块后的事件处理函数。
onHitEntityAfterEvent(event: EntityHitEntityAfterEvent): void 实体击中另一个实体后的事件处理函数。
onHurtAfterEvent(event: EntityHurtAfterEvent): void 实体受到伤害后的事件处理函数。
onLoadAfterEvent(event: EntityLoadAfterEvent): void 实体加载后的事件处理函数。
onRemoveAfterEvent(event: EntityRemoveAfterEvent): void 实体被移除后的事件处理函数。
onEntitySpawnAfterEvent(event: EntitySpawnAfterEvent): void 实体生成后的事件处理函数。
onRemoveBeforeEvent(event: EntityRemoveBeforeEvent): void 实体被移除前的事件处理函数。
详细描述
EntitySuperComponent​类继承自SuperComponent​类,用于创建和管理附加到SuperEntity​实例的自定义组件。这个类在构造函数中绑定了一系列实体事件,以便在实体发生特定行为时进行响应。在析构函数中,它解绑了这些事件,确保资源被正确清理。
constructor
构造函数初始化组件的typeId​、owner​和create_options​,并绑定了实体的一系列事件,如死亡、健康变化、击中方块、击中实体、受到伤害、加载、移除和生成等。
deconstructor
析构函数解绑了在构造函数中绑定的事件,确保当组件不再需要时,不会留下任何挂引用。
detach
这个方法用于从所有者上移除当前组件,通过调用所有者的removeCustomComponent​方法实现。
getOwner
返回组件的所有者实例,这里确保返回的是SuperEntity​类型的实例。
onStart
在组件启动时调用的方法,这里调用了基类的onStart​方法。
事件处理函数
类中定义了一系列事件处理函数,如onDieAfterEvent​、onHealthChangedAfterEvent​等,这些函数在对应的实体事件发生时被调用。这些方法的具体实现需要由子类提供。
EntitySuperComponent​类提供了一个框架,用于在游戏中创建和管理附加到实体的自定义组件,使得实体的行为和属性可以被灵活地扩展和修改。